home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / scrol11e.zip / SCROLL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-07-11  |  4KB  |  261 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  INTEGER012
  31.     Integer  INTEGER013
  32.     Integer  INTEGER014
  33.     Integer  TINTEGER015(6)
  34.     Integer  INTEGER016
  35.     Integer  INTEGER017
  36.     Integer  INTEGER018
  37.     Integer  INTEGER019
  38.     Integer  INTEGER020
  39.     Integer  INTEGER021
  40.     Integer  INTEGER022
  41.     Integer  INTEGER023
  42.     Integer  INTEGER024
  43.     String   STRING001
  44.     String   STRING002
  45.     String   STRING003
  46.     String   STRING004
  47.     String   STRING005
  48.     String   STRING006
  49.     String   STRING007
  50.     String   STRING008
  51.     String   STRING009
  52.     String   STRING010
  53.     String   STRING011
  54.     String   STRING012
  55.  
  56. ;------------------------------------------------------------------------------
  57.  
  58.     STRING008 = TokenStr()
  59.     Tokenize STRING008
  60.     INTEGER009 = 1
  61.     KbdChkOff
  62.     STRING009 = "@X8F@X0F"
  63.     While (TokCount() > 0) Do
  64.         TINTEGER015(INTEGER009) = GetToken()
  65.         Inc INTEGER009
  66.     EndWhile
  67.     INTEGER001 = TINTEGER015(1)
  68.     INTEGER016 = TINTEGER015(2)
  69.     INTEGER019 = TINTEGER015(3)
  70.     STRING005 = TINTEGER015(4)
  71.     INTEGER023 = TINTEGER015(5)
  72.     INTEGER024 = TINTEGER015(6)
  73.     If (INTEGER024 == "") INTEGER024 = 15
  74.     If (INTEGER023 == "") INTEGER023 = 4
  75.     If (STRING005 < 5) STRING005 = 5
  76.     STRING010 = ReadLine(PPEPath() + PPEName() + ".CNF", 1)
  77.     INTEGER020 = ReadLine(PPEPath() + PPEName() + ".CNF", 2)
  78.     STRING002 = ReadLine(PPEPath() + PPEName() + ".CNF", 3)
  79.     STRING003 = ReadLine(PPEPath() + PPEName() + ".CNF", 4)
  80.     STRING001 = ReadLine(PPEPath() + PPEName() + ".CNF", STRING005)
  81.     STRING012 = ReadLine(PCBDat(), 94)
  82.     STRING011 = " ■ Unregistred Version Of Scroll 1.1 ■  "
  83.     INTEGER022 = Len(STRING010)
  84.     INTEGER021 = (INTEGER022 + 22) * (INTEGER022 * INTEGER022) + 24354 - INTEGER022 - INTEGER022
  85.     If (STRING010 <> STRING012) Then
  86.         STRING001 = STRING001 + STRING011
  87.     Else
  88.         If (INTEGER021 <> INTEGER020) STRING001 = STRING001 + STRING011
  89.     Endif
  90.     INTEGER004 = Len(STRING002)
  91.     INTEGER005 = Len(STRING003)
  92.     If ((INTEGER004 + INTEGER005 < 40) && (INTEGER004 + INTEGER005 > 30)) INTEGER006 = 40
  93.     If ((INTEGER004 + INTEGER005 < 30) && (INTEGER004 + INTEGER005 > 20)) INTEGER006 = 50
  94.     If ((INTEGER004 + INTEGER005 < 20) && (INTEGER004 + INTEGER005 > 0)) INTEGER006 = 60
  95.     If (INTEGER004 + INTEGER005 > 41) Goto LABEL002
  96.     INTEGER014 = Len(STRING001)
  97.     INTEGER002 = (80 - INTEGER006 - INTEGER004 + INTEGER005) / 2
  98.     INTEGER007 = INTEGER002 + INTEGER004
  99.     INTEGER003 = INTEGER007 + INTEGER006 + 1
  100.     INTEGER008 = INTEGER003 - 1
  101.     AnsiPos 1, INTEGER016
  102.     DispText INTEGER019, 4
  103.     Print " ? "
  104.     INTEGER017 = GetX()
  105.     INTEGER018 = GetY()
  106.     Print STRING009
  107.     AnsiPos INTEGER002, INTEGER001
  108.     Print "@X0C", STRING002
  109.     AnsiPos INTEGER003, INTEGER001
  110.     Print "@X0C", STRING003
  111.     INTEGER009 = 0
  112.     INTEGER012 = 1
  113.     INTEGER010 = INTEGER008
  114.     While (INTEGER010 >= INTEGER007) Do
  115.         AnsiPos INTEGER010, INTEGER001
  116.         Color INTEGER024
  117.         Print Mid(STRING001, INTEGER009, INTEGER012)
  118.         Inc INTEGER012
  119.         Dec INTEGER010
  120.         Delay INTEGER023
  121.         Gosub LABEL001
  122.     EndWhile
  123.     INTEGER009 = 2
  124.     INTEGER010 = INTEGER006
  125.     INTEGER011 = 1
  126.     STRING004 = Inkey()
  127.     While (STRING004 <> Chr(13)) Do
  128.         If (INTEGER009 + INTEGER012 <= INTEGER014 + 1) Then
  129.             INTEGER013 = 1
  130.             INTEGER011 = 1
  131.             AnsiPos INTEGER007, INTEGER001
  132.             Print Mid(STRING001, INTEGER009, INTEGER012)
  133.             Inc INTEGER009
  134.         Else
  135.             AnsiPos INTEGER007, INTEGER001
  136.             Print Mid(STRING001, INTEGER009 + 1, INTEGER012 - INTEGER011)
  137.             Inc INTEGER011
  138.             If (INTEGER009 < INTEGER014) Then
  139.                 Inc INTEGER009
  140.             Else
  141.                 INTEGER009 = 1
  142.             Endif
  143.             Print Mid(STRING001, 0, INTEGER013)
  144.             Inc INTEGER013
  145.         Endif
  146.         Delay INTEGER023
  147.         Gosub LABEL001
  148.     EndWhile
  149.     End
  150.     :LABEL001
  151.     STRING004 = Inkey()
  152.     If (STRING004 == "") Return
  153.     AnsiPos INTEGER017, INTEGER018
  154.     STRING006 = Len(STRING007)
  155.     If (STRING004 == Chr(8)) Then
  156.         ClrEol
  157.         STRING007 = Mid(STRING007, 1, STRING006 - 1)
  158.     Endif
  159.     If (STRING004 <> Chr(8)) Then
  160.         STRING007 = STRING007 + STRING004
  161.     Endif
  162.     If ((STRING007 == "") && (STRING004 == Chr(13))) Return
  163.     Print STRING007 + STRING009
  164.     If (STRING004 == Chr(13)) Then
  165.         ClrEol
  166.         KbdString STRING007
  167.         KbdChkOn
  168.         End
  169.     Endif
  170.     Return
  171.     :LABEL002
  172.     Cls
  173.     PrintLn "The length of the start and the ending block is bigger"
  174.     PrintLn "than 41. Can't execute PPE !"
  175.     PrintLn "Please read the File SCROLLER.DOC"
  176.     STRING004 = Inkey()
  177.     While (STRING004 <> Chr(13)) Do
  178.     EndWhile
  179.     Cls
  180.     End
  181.  
  182. ;------------------------------------------------------------------------------
  183. ;
  184. ; Usage report (before postprocessing)
  185. ;
  186. ; ■ Statements used :
  187. ;
  188. ;    3       End
  189. ;    2       Cls
  190. ;    2       ClrEol
  191. ;    1       Color 
  192. ;    18      Goto 
  193. ;    51      Let 
  194. ;    9       Print 
  195. ;    3       PrintLn 
  196. ;    20      If 
  197. ;    2       Gosub 
  198. ;    3       Return
  199. ;    2       Delay 
  200. ;    6       Inc 
  201. ;    1       Dec 
  202. ;    1       Tokenize 
  203. ;    1       DispText 
  204. ;    1       KbdChkOn
  205. ;    1       KbdChkOff
  206. ;    7       AnsiPos 
  207. ;    1       KbdString 
  208. ;
  209. ;
  210. ; ■ Functions used :
  211. ;
  212. ;    2       *
  213. ;    1       /
  214. ;    30      +
  215. ;    7       -
  216. ;    7       ==
  217. ;    5       <>
  218. ;    5       <
  219. ;    1       <=
  220. ;    5       >
  221. ;    1       >=
  222. ;    10      !
  223. ;    4       &&
  224. ;    5       Len(
  225. ;    5       Mid()
  226. ;    6       Chr()
  227. ;    3       Inkey()
  228. ;    1       PCBDat()
  229. ;    5       PPEPath()
  230. ;    6       ReadLine()
  231. ;    1       GetToken()
  232. ;    1       TokenStr()
  233. ;    1       GetX()
  234. ;    1       GetY()
  235. ;    5       PPEName()
  236. ;    1       TokCount()
  237. ;
  238. ;------------------------------------------------------------------------------
  239. ;
  240. ; Analysis flags : d
  241. ;
  242. ; d - Access PCBOARD.DAT ■ 2
  243. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  244. ;     for many PPE so they can find various informations on the system
  245. ;     (system paths, max number of lines in messages, ...) but it may also
  246. ;     be a way to gather vital informations.
  247. ;     ■ Search for : PCBDAT()
  248. ;
  249. ;------------------------------------------------------------------------------
  250. ;
  251. ; Postprocessing report
  252. ;
  253. ;    0       For/Next
  254. ;    4       While/EndWhile
  255. ;    6       If/Then or If/Then/Else
  256. ;    0       Select Case
  257. ;
  258. ;------------------------------------------------------------------------------
  259. ;                 AEGiS Corp - Break the routines, code against the machines!
  260. ;------------------------------------------------------------------------------
  261.